"""
map(function, iterable)
function：一个函数或方法
iterable：一个或多个序列（可迭代对象）
map() 函数的作用是：对序列 iterable 中每一个元素调用 function 函数，返回一个map对象实例。这个map对象本质上来讲是一个迭代器。
"""
def double_func(x):
    return x* 2
bonuses = [100, 200, 300]
iterator1 = map(double_func, bonuses)#对bonuses中的每个元素都调用double_func函数
iterator2 = map(lambda x: x*2, bonuses)
print(list(iterator1))
print(list(iterator2))

#map() 函数输入多个可迭代对象iterable
b1 = [100, 200, 300]
b2 = [1, 2, 3]
iterator = map(lambda x,y : x*y, b1, b2)
#直接输出迭代器iterator，输出 map object 及其物理地址
print(iterator)
for i in iterator:
    print(i)
#map 对象是一个一次性迭代器，一旦被遍历过一次（如在 for 循环中），它就会被耗尽
print(list(iterator))  # 输出：[]

#首字母大写
names = ['david', 'peter', 'jenifer']
new_names = map(lambda name: name.capitalize(), names)
print(list(new_names))


